home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / remote / ra_struc.zip / RASTRUCT.DOC
Text File  |  1990-01-24  |  43KB  |  1,130 lines

  1.                        RemoteAccess 0.01
  2.  
  3.                    Data-Structure Reference
  4.  
  5.           Copyright (C) 1989,90 Continental Software
  6.                      All Rights Reserved
  7.  
  8. Table of Contents:
  9.  
  10. 1.   Introduction. . . . . . . . . . . . . . . . . . . . .   1
  11.  
  12. 2.   List/Description of data-structures . . . . . . . . .   2
  13.      2.1  Constants. . . . . . . . . . . . . . . . . . . .   2
  14.      2.2  Preliminary type-definitions . . . . . . . . . .   2
  15.      2.3  Message-base data/file structures. . . . . . . .   2
  16.           MSGINFO.BBS                                        2
  17.           MSGIDX.BBS                                         3
  18.           MSGTOIDX.BBS                                       3
  19.           MSGHDR.BBS                                         4
  20.           MSGTXT.BBS                                         5
  21.           Message-files set:                                 5
  22.      2.4  User-based data/file structures. . . . . . . . .   6
  23.           USERON.BBS                                         6
  24.           USERS.BBS                                          6
  25.           LASTREAD.BBS                                       8
  26.           COMBINED.BBS                                       8
  27.           LASTCALL.BBS                                       8
  28.      2.5  General system file/data structures. . . . . . .   9
  29.           SYSINFO.BBS                                        9
  30.           TIMELOG.BBS                                        9
  31.           EXITINFO.BBS                                      10
  32.      2.6  Menu file/data structure . . . . . . . . . . . .  11
  33.      2.7  RemoteAccess Configuration Files . . . . . . . .  12
  34.           EVENTS.RA                                         12
  35.           MESSAGES.RA                                       12
  36.           FILES.RA                                          13
  37.           PROTOCOL.RA                                       14
  38.           CONFIG.RA                                         15
  39.  
  40. 1.  Introduction
  41.  
  42.      RemoteAccess Tools (known under the generic title of 'RAT')
  43. is a simple, powerful and flexible interface between programs
  44. and RemoteAccess's data and configuration files. It can be used
  45. at many levels, which are described below:
  46.  
  47. (i)  Data structures;
  48.  
  49. The RAT package can be used for purely reference material, as
  50. the documentation outlines the data-formats and structures of
  51. the various RemoteAccess disk files.
  52.  
  53. Other areas will be added in the future to this document, including
  54. a reference to all the routines in the RemoteAccess Tools (RAT)
  55. development package (of which this will become a part of). Included
  56. in the package will be pre-compiled routines to manipulate all the
  57. RemoteAccess data-files - more details will be provided later.
  58.  
  59.  
  60. 2.  List/Description of data-structures
  61.  
  62. 2.1  Constants
  63.  
  64. RAT comes with many in-built constants, which may be of use:
  65.  
  66. const 
  67.      CR             = #$0D; 
  68.      SoftCR         = #$8D; 
  69.      LF             = #$0A; 
  70.      RATVersion     = '0.01 (TP)'; 
  71.      RATName        = 'RemoteAccess Tools (RAT) '+RATVersion+',
  72.           Copyright (C) 1989,90 by Continental Software.'; 
  73.      MonthName      : array[1..12] of String[3] = ('Jan', 'Feb',
  74.           'Mar', 'Apr','May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
  75.           'Nov', 'Dec'); 
  76.  
  77. It would be appreciated if you displayed the constant RATName
  78. somewhere in your programs which call-on the RAT library. Let
  79. people know what your program uses.
  80.  
  81. 2.2  Preliminary type-definitions
  82.  
  83. type 
  84.      MsgType        = (Local, NetMail, EchoMail); 
  85.      FlagType       = array[1..4] of Byte; 
  86.      Time           = String[5];
  87.      Date           = String[8];
  88.      LongDate       = String[9];
  89.  
  90.      NetAddress     = record 
  91.                         Zone, 
  92.                         Net, 
  93.                         Node, 
  94.                         Point          : Word; 
  95.                       end; 
  96.  
  97.      AskType        = (Yes, No, Ask);
  98.  
  99.      MsgKindsType   = (Both, Private, Public, ROnly); 
  100.  
  101. These structures are defined purely for use in other structure
  102. definition areas. Time and Date are used in the message-base,
  103. while LongDate has the month-number expanded to a three-
  104. character month symbol (as per MonthName constant).
  105.  
  106. 2.3  Message-base data/file structures
  107.  
  108. The specs provided here are for the message-base currently used
  109. by the RemoteAccess system, which is compatible with the
  110. QuickBBS v2.04 message-base. The only reason for using this
  111. format, was that a lot of software was available which used this
  112. - and is a much better alternative to the 'standard' *.MSG
  113. format.
  114.  
  115. File: MSGINFO.BBS
  116.  
  117. type
  118.   MSGINFOrecord  = record 
  119.                      LowMsg, 
  120.                      HighMsg, 
  121.                      TotalMsgs      : Word; 
  122.                      TotalOnBoard   : array[1..200] of Word; 
  123.                    end; 
  124.  
  125. MSGINFO.BBS contains one (and ONLY one) record of MSGINFOrecord,
  126. and is designed so software can get general information about
  127. the message-base without actually having to perform a 'scan' on
  128. the message-base. Information from here, is for example, used in
  129. RA to decide if it should perform a read by checking the
  130. TotalOnBoard to see if there are any messages to read.
  131.  
  132. Field descriptions:
  133.  
  134.      LowMsg    :    Lowest message-number in the entire message-
  135.                     base.
  136.      HighMsg   :    Highest message-number in the entire
  137.                     message-base.
  138.      TotalMsg  :    Total number of messages in the entire
  139.                     message-base
  140.      TotalOnBoard:  Contains an list of the number of messages
  141.                     in every individual message-area. These
  142.                     include any messages which aren't deleted -
  143.                     private or not.
  144.  
  145. File: MSGIDX.BBS
  146.  
  147. type
  148.   MSGIDXrecord   = record 
  149.                      MsgNum         : Integer; 
  150.                      Board          : Byte; 
  151.                    end; 
  152.  
  153. MSGIDX is designed to be the primary searching index-file,
  154. record numbers in this file are maintained parallel to MSGHDR
  155. and MSGTOIDX to enable a record in either to be found quickly.
  156. It's very small, thus extremely fast to scan, and is used mainly
  157. to:
  158.  
  159. (a)  Find a particular msg number
  160. (b)  Find the 'next' message on a particular msg area
  161. (c)  Find the 'next' active message (on any area)
  162.  
  163. Field descriptions:
  164.  
  165.      MsgNum    :    Message-number message
  166.      Board     :    Number of message-area to which message is
  167.                     a member
  168.  
  169. File: MSGTOIDX.BBS
  170.  
  171. type
  172.   MSGTOIDXrecord = String[35]; 
  173.  
  174. MSGTOIDX is an extremely simple index-file used to execute a
  175. 'mail-box' check for a particular person as quickly as possible.
  176. Records in this index are maintained parallel to MSGIDX and
  177. MSGHDR. It contains only the information necessary to perform
  178. this check, thus making it as fast as is possible. 
  179.  
  180. MSGTOIDXrecord contains exactly the same information as the
  181. 'To:' field in the equivalent MSGHDR record.
  182.  
  183. File: MSGHDR.BBS
  184.  
  185. type
  186.   MSGHDRrecord   = record 
  187.                      MsgNum         : Integer; 
  188.                      PrevReply, 
  189.                      NextReply, 
  190.                      TimesRead      : Word; 
  191.                      StartBlock     : Word; 
  192.                      NumBlocks, 
  193.                      DestNet, 
  194.                      DestNode, 
  195.                      OrigNet, 
  196.                      OrigNode       : Word; 
  197.                      DestZone, 
  198.                      OrigZone       : Byte; 
  199.                      Cost           : Word; 
  200.                      MsgAttr, 
  201.                      NetAttr, 
  202.                      Board          : Byte; 
  203.                      PostTime       : Time; 
  204.                      PostDate       : Date; 
  205.                      WhoTo, 
  206.                      WhoFrom        : MSGTOIDXrecord; 
  207.                      Subject        : String[72]; 
  208.                    end; 
  209.  
  210. MSGHDR contains all information about the messages in the
  211. message-base (except the actual text) and is the primary
  212. reference file. Becuase of all the information present, it is
  213. quite large so smaller index files are usually used to locate a
  214. particular message where the MSGHDR can be consulted for greater
  215. detail.
  216.  
  217. Field descriptions:
  218.  
  219.      MsgNum    :    Number of message
  220.      PrevReply :    Msg# of previous message in reply-chain (0
  221.                     if there is none)
  222.      NextReply :    Msg# of next message in reply-chain (0 if
  223.                     there is none)
  224.      TimesRead :    Number of times this message has been read.
  225.                     (This field is currently not being used)
  226.      StartBlock:    Record-number offset in MSGTXT file where
  227.                     text of message begins.
  228.      NumBlocks :    Number of following MSGTXT text-blocks which
  229.                     are a part of this message.
  230.      DestNet   :    Net-number where message is destined
  231.      DestNode  :    Node-number where message is destined
  232.      OrigNet   :    Net-number where message originated
  233.      OrigNode  :    Node-number where message originated
  234.      DestZone  :    Zone-number where message is destined
  235.      OrigZone  :    Zone-number where message originated
  236.      Cost      :    Cost (in whatever units you like) to user
  237.                     for posting message. Only applicable in
  238.                     NetMail.
  239.      MsgAttr   :    Various message-attribute flags:
  240.                          Bit 0:    Deleted
  241.                          Bit 1:    Netmail pending export
  242.                          Bit 2:    Netmail msg
  243.                          Bit 3:    Private
  244.                          Bit 4:    Received
  245.                          Bit 5:    Echomail pending export
  246.                          Bit 6:    Locally generated msg
  247.  
  248.      NetAttr   :    Various Netmail attribute flags: (only
  249.                     applicable if Bit-2 of MsgAttr is 1)
  250.                          Bit 0:    Kill/sent - message will be
  251.                                    deleted after export.
  252.                          Bit 1:    Sent - message has been
  253.                                    exported, but not killed.
  254.                          Bit 2:    File Attach - subject-line
  255.                                    contains filespec.
  256.                          Bit 3:    Crash - message must be sent
  257.                                    directly to destination NOW.
  258.                          Bit 4:    Request Receipt
  259.                          Bit 5:    Audit Request
  260.                          Bit 6:    Is a Return Receipt 
  261.  
  262.      Board     :    Message-area to which message is a member
  263.      PostTime  :    Time at which the message was posted
  264.      PostDate  :    Date at which the message was posted
  265.      WhoTo     :    Name of addresse.
  266.      WhoFrom   :    Name of addresser.
  267.      Subject   :    Brief description of message's contents -
  268.                     filespec of file-attaches in case of Bit 2
  269.                     in NetAttr being 1.
  270.  
  271. File: MSGTXT.BBS
  272.  
  273. MSGTXT contains only the text of messages in the message-base.
  274. Basically, it is a database of Turbo-Pascal String[255]'s and is
  275. indexed by StartBlock and NumBlocks in MSGHDR.
  276.  
  277. type
  278.      MSGTXTrecord   = String[255]; 
  279.  
  280. Message-files set:
  281.  
  282.    MSGfiles       = record 
  283.                       INFO           : file of MSGINFOrecord; 
  284.                       IDX            : file; 
  285.                       HDR            : file; 
  286.                       TOIDX          : file; 
  287.                       TXT            : file; 
  288.                       MSGINFO        : MSGINFOrecord; 
  289.                     end; 
  290.  
  291. The record defined as MSGfiles contains a complete set of
  292. message-base files, plus a MSGINFO record. This record is
  293. required by all message-base routines in RAT, so it may have
  294. access to all the files, plus from time-to-time efficiently
  295. access the MSGINFOrecord for the base to reduce disk-reads.
  296.  
  297. 2.4  User-based data/file structures
  298.  
  299. File: USERON.BBS
  300.  
  301. USERON contains information about users which are currently
  302. using a particular system at a particular moment in time. One
  303. record is written to this file for every line on a system. eg,
  304. line #1 writes record #1, line #4 writes to record #4 etc..
  305.  
  306. type
  307.   USERONrecord   = record 
  308.                      Name           : MSGTOIDXrecord; 
  309.                      Line           : Byte; 
  310.                      Baud           : Word; 
  311.                      City           : String[25]; 
  312.                      DoNotDisturb   : Boolean; 
  313.                    end; 
  314.  
  315.   USERONfile     = file of USERONrecord; 
  316.  
  317. Field descriptions:
  318.  
  319.      Name      :    Name of particular user on this line
  320.      Line      :    Line # number the user is currently
  321.                     connected to. This is used to validate the
  322.                     integrity of the datafile, and a zero in
  323.                     this field indicates the user has since
  324.                     logged-off and the line is free.
  325.      Baud      :    Baud-rate the user has logged-on under,
  326.                     stored in exact bps format. eg,
  327.                     1200=1200bps.
  328.      City      :    City/state user has indicated s/he comes
  329.                     from
  330.      DoNotDisturb:  Flag to indicate if messages from other
  331.                     users should come through.
  332.  
  333. File: USERS.BBS
  334.  
  335. USERS is the central database where all information about the
  336. callers of a system is held. The 'user-file' (as it is known) is
  337. compatible with the QuickBBS v2.04 format for compatability
  338. reasons.
  339.  
  340. type
  341.   USERSrecord    = record 
  342.                      Name           : MSGTOIDXrecord; 
  343.                      Location       : String[25]; 
  344.                      Password       : String[15]; 
  345.                      DataPhone, 
  346.                      VoicePhone     : String[12]; 
  347.                      LastTime       : Time; 
  348.                      LastDate       : Date; 
  349.                      Attribute      : Byte; 
  350.                      Flags          : FlagType; 
  351.                      Credit, 
  352.                      Pending        : Word; 
  353.                      MsgsPosted, 
  354.                      LastRead, 
  355.                      Security, 
  356.                      NoCalls, 
  357.                      Uploads, 
  358.                      Downloads, 
  359.                      UploadsK, 
  360.                      DownloadsK     : Word; 
  361.                      TodayK, 
  362.                      Elapsed        : Integer; 
  363.                      ScreenLength   : Word; 
  364.                      LastPwdChange, 
  365.                      Attribute2     : Byte; 
  366.                      ExtraSpace     : array[1..6] of Byte; 
  367.                    end; 
  368.  
  369.   USERSfile = file;
  370.  
  371. Field descriptions:
  372.  
  373.      Name      :    Name of user
  374.      Location  :    Location (city/suburb/state/whatever)
  375.      Password  :    Password (capitalised - eg. "Whynot")
  376.      DataPhone :    Phone-number of data/work phone-line
  377.      VoicePhone:    Phone-number of voice/home phone-line
  378.      LastTime  :    Time of last log-on
  379.      LastDate  :    Date of last log-on
  380.      Attribute :    Miscellaneous user flags:
  381.                          Bit 0:    Deleted
  382.                          Bit 1:    Clear screen
  383.                          Bit 2:    "Continue[Y/n/=]" prompting
  384.                          Bit 3:    ANSI capable
  385.                          Bit 4:    Don't kill user (ever)
  386.                          Bit 5:    Ignore download restrictions
  387.                          Bit 6:    Full-screen msg editor
  388.                          Bit 7:    Quiet mode (for inter-user
  389.                                    messages)
  390.  
  391.      Flags     :    Security flags given to this user
  392.      Credit    :    Credit in user's account (in whatever units
  393.                     you like)
  394.      Pending   :    Value of pending "not-yet-exported" netmail
  395.                     which will be deducted from credit upon
  396.                     exporting to destination
  397.      MsgsPosted:    Total number of messages user has ever
  398.                     posted
  399.      LastRead  :    Highest msg # the user has read in the whole
  400.                     message-base
  401.      Security  :    Security level
  402.      NoCalls   :    Total number of calls to system
  403.      Uploads   :    Total number of files uploaded
  404.      Downloads :    Total number of files downloaded
  405.      UploadsK  :    Total amount (in KB) of files uploaded
  406.      DownloadsK:    Total amount (in KB) of files downloaded
  407.      TodayK    :    Amount of (DownloadsK - UploadsK) for day of
  408.                     last call
  409.      Elapsed   :    Total amount of minutes used today (extra
  410.                     minutes today if negative)
  411.      ScreenLength:  Length of user's screen
  412.      LastPwdChange: Number of calls to system since last
  413.                     password change
  414.      Attribute2:    Other misc flags:
  415.                          Bit 0:    Hot-key mode
  416.  
  417.      ExtraSpace:    Future use
  418.  
  419. This file is completely compatible with QuickBBS v2.04, but
  420. differences occur thereafter.
  421.  
  422. File: LASTREAD.BBS
  423.  
  424. This file contains one record per user on a system, and records
  425. are maintained parallel to COMBINED and USERS. Each element of
  426. the LASTREADrecord contains the highest message # read for that
  427. particular area.
  428.  
  429. type
  430.   LASTREADrecord = array[1..200] of Word; 
  431.   LASTREADfile = file;
  432.  
  433. This file is completely compatible with QuickBBS v2.61
  434.  
  435. File: COMBINED.BBS
  436.  
  437. This file contains one record per user on a system, and records
  438. are maintained parallel to LASTREAD and USERS. Each bit of the
  439. COMBINEDrecord contains a 1 or a 0 indicating if the paricular
  440. user (indicated by the record #) has a particular msg area
  441. (indicated by the following method) selected as part of the
  442. 'combined' area or not.
  443.  
  444. eg. The bit which corresponds to area 'AreaNum' is:
  445.  
  446. Bit (AreaNum mod 8) of byte number (AreaNum div 8).
  447.  
  448. eg.
  449.   Selected := Bit(AreaNum mod 8, COMBINEDinfo[AreaNum div 8]);
  450.  
  451. type
  452.   COMBINEDrecord = Array[1..25] of Byte;
  453.  
  454.   COBINEDfile = file;
  455.  
  456. This file is *NOT* in ANY WAY compatible with QuickBBS as are
  457. LASTREAD and USERS, but it shares the same filename with another
  458. file.
  459.  
  460. File: LASTCALL.BBS
  461.  
  462. LASTCALL contains general information about the last user which
  463. was on the system last. It is stored in RA's start-up directory
  464. and there is one for every line.
  465.  
  466. type
  467.   LASTCALLrecord = record 
  468.                      Line           : Byte; 
  469.                      Name           : MSGTOIDXrecord; 
  470.                      City           : String[25]; 
  471.                      Baud           : Word; 
  472.                      Times          : LongInt; 
  473.                      LogOn          : String[5]; 
  474.                      LogOff         : String[5]; 
  475.                    end; 
  476.  
  477.   LASCALLfile = file of LASTCALLrecord;
  478.  
  479. Field descriptions:
  480.  
  481.      Line      :    Line # user was connected to. 
  482.      Name      :    Name of user
  483.      City      :    Where the user has indicated s/he comes from
  484.      Baud      :    bps rate the connection was made at
  485.      Times     :    Number of times the user has called the
  486.                     system
  487.      LogOn     :    Time of log-on
  488.      LogOff    :    Time of log-off
  489.  
  490. 2.5  General system file/data structures
  491.  
  492. File: SYSINFO.BBS
  493.  
  494. SYSINFO contains general information about a system, so
  495. utilities and RA itself may know some very basic historical
  496. information. The total number of callers and the name of the
  497. last caller are stored in this file.
  498.  
  499. type
  500.    SYSINFOrecord  = record 
  501.                      TotalCalls     : LongInt; 
  502.                      LastCaller     : MSGTOIDXrecord; 
  503.                      ExtraSpace     : array[1..128] of Byte; 
  504.                    end; 
  505.  
  506.   SYSINFOfile    = file of SYSINFOrecord; 
  507.  
  508. File: TIMELOG.BBS
  509.  
  510. TIMELOG contains information about useage on a per-hour of the
  511. day, and a per-day of the week basis. At this moment in time,
  512. only the per-hour useage has been implemented, the latter is
  513. left for future expansion.
  514.  
  515. type
  516.   TIMELOGrecord  = record 
  517.                      StartDate      : Date; 
  518.                      BusyPerHour    : array[0..23] of Word; 
  519.                      BusyPerDay     : array[0..6] of Word; 
  520.                    end; 
  521.  
  522.   TIMELOGfile = file of TIEMLOGrecord;
  523.  
  524. The format in which usage information is held in BusyPerHour is
  525. that each element of the array represents an hour, and the word
  526. contains the total number of minutes a user has been on-line in
  527. that hour. From this information RA can generate a usage graph.
  528.  
  529. File: EXITINFO.BBS
  530.  
  531. EXITINFO is a very powerful interface file between RemoteAccess
  532. and any external packages which care to read it, and has become
  533. the 'standard' of exit-files. Programs are available to convert
  534. EXITINFO to most other door formats, but if there isn't one for
  535. you, then you can always write your own converter now.
  536.  
  537. The most powerful feature about the EXITINFO interface though,
  538. is the fact that the contents after the external program has
  539. finished executing are considered to be true, thus an external
  540. program can modify any information convered in EXITINFO with
  541. great ease.
  542.  
  543. type
  544.   EXITINFOrecord = record 
  545.                      Baud           : Word; 
  546.                      SysInfo        : SYSINFOrecord; 
  547.                      TimeLogInfo    : TIMELOGrecord; 
  548.                      UserInfo       : USERSrecord; 
  549.                      EventInfo      : EVENTrecord; 
  550.                      NetMailEntered, 
  551.                      EchoMailEntered : Boolean; 
  552.                      LoginTime      : Time; 
  553.                      LoginDate      : Date; 
  554.                      TimeLimit      : Word; 
  555.                      LoginSec, 
  556.                      Credit         : LongInt; 
  557.                      UserRecord     : Word; 
  558.                      ReadThru       : Word; 
  559.                      NumberPages    : Word; 
  560.                      DownloadLimit  : Word; 
  561.                      TimeOfCreation : Time; 
  562.                      LogonPassword  : String[15]; 
  563.                      WantChat       : Boolean; 
  564.                  end; 
  565.  
  566.   EXITINFOfile = file of EXITINFOrecord;
  567.  
  568. Field descriptions:
  569.  
  570.      Baud      :    bps rate at connection
  571.      SysInfo   :    Up-to-date contents of SYSINFO.BBS
  572.      TIMELOGinfo:   Up-to-date contents of TIMELOG.BBS
  573.      UserInfo  :    Current users user-file record information
  574.      EventInfo :    Current event record information
  575.      NetMailEntered:True if NetMail has been entered this call
  576.      EchoMailEntered:True if EchoMail has been entered this call
  577.      LoginTime :    What time the user logged-on
  578.      LoginDate :    What date the user logged-on
  579.      TimeLimit :    Users time-limit for today (in minutes)
  580.      LoginSec  :    Number of seconds between midnight and ?
  581.      Credit    :    Amount of credit still on users account
  582.      UserRecord:    Record # of current user in USERS.BBS
  583.      ReadThru  :
  584.      NumberPages:   Number of times the user has paged the
  585.                     Systems Operator this call
  586.      DownloadLimit: User's download restriction (in KB) for
  587.                     today
  588.      TimeOfCreation:Time the EXITINFO file was created.
  589.      LogonPassword: Password user used to log-on with. This is
  590.                     to prevent users from changin their
  591.                     passwords back to what they had previously
  592.                     had it before RA forced them to change it.
  593.      WantChat  :    True if the user still has an unanswered
  594.                     page to the Systems Operator
  595.  
  596. 2.6  Menu file/data structure
  597.  
  598. Menu-files consist of a set of records of type MNUrecord, where
  599. special rules for the first record apply. After the first
  600. record, menu-options are listed, one record per option.
  601.  
  602.   MNUrecord      = record 
  603.                      Typ            : Byte; 
  604.                      Security       : Word; 
  605.                      Flags          : FlagType; 
  606.                      Display        : String[75]; 
  607.                      HotKey         : Char; 
  608.                      MiscData       : String[80]; 
  609.                      Foreground, 
  610.                      Background     : Byte; 
  611.                    end; 
  612.  
  613. Field descriptions: (for first record)
  614.  
  615.      Typ       :    Highlight foreground
  616.      Security  :    Highlight background
  617.      Flags     :    [not used]
  618.      Display   :    Menu prompt
  619.      HotKey    :    [not used]
  620.      MiscData  :    [not used]
  621.      Foreground:    Menu prompt foreground
  622.      Background:    Menu prompt background
  623.  
  624. Field descriptions:
  625.  
  626.      Typ       :    Menu-type number, see RA documentation for
  627.                     complete lis.
  628.      Security  :    Security-level required to see/use this
  629.                     option
  630.      Flags     :    Flags required to see/use this option
  631.      Display   :    String to display on menu. 'Hilight'
  632.                     characters should be enclosed with caret (^)
  633.                     sybmols. Use of summary-characters (@, `, ~
  634.                     etc..) may also be used
  635.      HotKey    :    Key used to activate the option
  636.      MiscData  :    Miscellaneous data line - useage depends on
  637.                     Typ, as there is different extra data
  638.                     required for every menu type
  639.      Foreground:    Foreground colour to display option
  640.      Background:    Background colour to display option
  641.  
  642. 2.7  RemoteAccess Configuration Files
  643.  
  644. File: EVENTS.RA
  645.  
  646. EVENTS is a very simple event database, and contains all RA
  647. event information. Each record corresponds to one event. This
  648. file has a fixed-length.
  649.  
  650.   EVENTrecord    = record 
  651.                      Status         : Byte;
  652.                      StartTime      : Time; 
  653.                      ErrorLevel     : Byte; 
  654.                      Days           : Byte; 
  655.                      Forced         : Boolean; 
  656.                      LastTimeRun    : Date; 
  657.                    end; 
  658.  
  659.   EVENTrecordArray = array[1..20] of EVENTrecord; 
  660.  
  661.   EVENTfile = file of EVENTrecordArray;
  662.  
  663. Field descriptions:
  664.  
  665.      Status    :    Indicates current status of event:
  666.                          0 = Deleted
  667.                          1 = Enabled
  668.                          2 = Disabled
  669.      StartTime :    Time at which the event should start
  670.      ErrorLevel:    Errorlevel which should be used
  671.      Days      :    Indicator of which days event should
  672.                     execute:
  673.                          Bit 0:    Sunday
  674.                          Bit 1:    Monday
  675.                          Bit 2:    Tuesday
  676.                          Bit 3:    Wednesday
  677.                          Bit 4:    Tursday
  678.                          Bit 5:    Friday
  679.                          Bit 6:    Saturday
  680.      Forced    :    Tells RA if it should kick users off to meet
  681.                     event dead-line.
  682.      LastTimeRun:   The date at which the event was last
  683.                     executed
  684.  
  685. File: MESSAGES.RA
  686.  
  687. MESSAGES contains all configuration data concerned with the
  688. various message-areas in the RA message-base. One record is
  689. provided for each message-area, and the file has a fixed-length
  690. of 200 records. Contained in this file is information ranging
  691. from the name of the area, to how the area can be accessed and
  692. how the messages should be maintained (by RAMSG and the like).
  693.  
  694. type
  695.   MESSAGErecord  = record 
  696.                      Name           : String[40]; 
  697.                      Typ            : MsgType; 
  698.                      MsgKinds       : MsgKindsType; 
  699.                      Aliases        : Boolean; 
  700.                      DaysKill, 
  701.                      RecvKill       : Byte;
  702.                      CountKill      : Word; 
  703.  
  704.                      ReadSecurity   : Word; 
  705.                      ReadFlags      : FlagType; 
  706.  
  707.                      WriteSecurity  : Word; 
  708.                      WriteFlags     : FlagType; 
  709.  
  710.                      SysopSecurity  : Word; 
  711.                      SysopFlags     : FlagType; 
  712.  
  713.                      OriginLine     : String[60]; 
  714.                      AkaAddress     : Byte; 
  715.                    end; 
  716.  
  717.   MESSAGEfile = file of MESSAGErecord;
  718.  
  719. Field descriptions:
  720.  
  721.      Name      :    Name of message-area, in readable form
  722.      Typ       :    What type of messages should be kept in the
  723.                     area. (Local, NetMail, EchoMail)
  724.      MsgKinds  :    What kind of messages should be allowed in
  725.                     the area. (Both, Private, Public, ROnly)
  726.      Aliases   :    If used should be allowed to enter messages
  727.                     under another name.
  728.      DaysKill  :    How many days since posting messages should
  729.                     be kept for
  730.      RecvKill  :    How many days since posting messages
  731.                     received should be kept for
  732.      CountKill :    Maximum number of messages which should be
  733.                     allowed in the message-area
  734.      ReadSecurity:  Security value needed to read messages
  735.      ReadFlags :    Flags needed to read messages
  736.      WriteSecurity: Security value needed to post messages
  737.      WriteFlags:    Flags needed to post messages
  738.      SysopSecurity: Security value needed to perform 'Sysop'
  739.                     functions on the message area. eg, "[D]elete
  740.                     messages, [*] etc.."
  741.      SysopFlags:    Flags needed to perform 'Sysop' functions on
  742.                     the message area.
  743.      OriginLine:    Text to place on " * Origin:" line, if empty
  744.                     default one is used.
  745.      AkaAddress:    Aka # address to use on " * Origin:" line,
  746.                     MSGID's, EID's in EchoMail areas, and origin
  747.                     addresses in the case of the message-area
  748.                     being NetMail.
  749.  
  750. File: FILES.RA
  751.  
  752. FILES contains all configuration data concerned with the various
  753. file-areas in RA. One record is provided for each area, and the
  754. file has a fixed-length of 200 records. Contained in this file
  755. is information ranging from the name of the area, to how the
  756. files can be accessed.
  757.  
  758.   FILESrecord    = record 
  759.                      Name           : String[30]; 
  760.                      Typ            : Byte; 
  761.                      FilePath,    
  762.                      ListPath       : String[40];
  763.  
  764.                      Security       : Word; 
  765.                      Flags          : FlagType; 
  766.  
  767.                      PrivateSecurity : Word;
  768.                      PrivateFlags   : FlagType;
  769.                    end; 
  770.  
  771. Field descriptions:
  772.  
  773.      Name      :    Name of file-area
  774.      Typ       :    [not-used]
  775.      FilePath  :    Path to download files/FILES.BBS
  776.      ListPath  :    [not-used]
  777.      Security  :    Security needed to view, download and upload
  778.      Flags     :    Flags needed to do view, download and upload
  779.      PrivateSecurity
  780.                :    Security needed to view/download files with
  781.                     '/' leading description
  782.      PrivateFlags:  Flags needed to do the above
  783.  
  784. File: PROTOCOL.RA
  785.  
  786. PROTOCOL contains information about the various external
  787. protocols which have been installed into RA. Information is
  788. needed to know how to interface external protocols as they run
  789. over a wide range of implementations.
  790.  
  791. type
  792.   PROTOCOLrecord = record 
  793.                      Name           : String[15]; 
  794.                      ActiveKey      : Char; 
  795.                      OpusTypeCtlFile, 
  796.                      BatchAvailable : Boolean; 
  797.                      Attribute      : Byte; 
  798.                      LogFileName, 
  799.                      CtlFileName, 
  800.                      DnCmdString, 
  801.                      DnCtlString, 
  802.                      UpCmdString, 
  803.                      UpCtlString    : String[80]; 
  804.                      UpLogKeyword, 
  805.                      DnLogKeyword   : String[20]; 
  806.                      XferDescWordNum, 
  807.                      XferNameWordNum : Byte; 
  808.                    end; 
  809.  
  810.   PROTOCOLfile   = file of PROTOCOLrecord; 
  811.  
  812.      Name      :
  813.      ActiveKey :
  814.      OpusTypeCtlFile:
  815.      BatchAvailable:
  816.      Attribute :
  817.      LogFileName:
  818.      CtlFileName:
  819.      DnCmdString:
  820.      DnCtlString:
  821.      UpCmdString:
  822.      UpCtlString:
  823.      UpLogKeyword:
  824.      DnLogKeyword:
  825.      XferDescWordNum:
  826.      XferNameWordNum:
  827.  
  828. File: CONFIG.RA
  829.  
  830. CONFIG contains most of the configuration information needed by
  831. RA. It covers everything from the location of other data-files
  832. to the restriction of various security levels from certain
  833. functions to modem information.
  834.  
  835. type
  836.   CONFIGrecord = Record 
  837.     VersionID     : Word; 
  838.     CommPort      : Byte; 
  839.     Baud          : LongInt; 
  840.     InitTries     : Byte; 
  841.     InitStr, 
  842.     BusyStr       : String[70]; 
  843.     InitResp, 
  844.     BusyResp, 
  845.     Connect300, 
  846.     Connect1200, 
  847.     Connect2400, 
  848.     Connect4800, 
  849.     Connect9600, 
  850.     Connect19k, 
  851.     Connect38k    : String[40]; 
  852.     AnswerPhone   : Boolean; 
  853.     Ring, 
  854.     AnswerStr     : String[20]; 
  855.     FlushBuffer   : Boolean; 
  856.     ModemDelay    : Integer; 
  857.     MinimumBaud, 
  858.     GraphicsBaud, 
  859.     TransferBaud  : Integer; 
  860.     SlowBaudTimeStart, 
  861.     SlowBaudTimeEnd, 
  862.     DownloadTimeStart, 
  863.     DownloadTimeEnd, 
  864.     PagingTimeStart, 
  865.     PagingTimeEnd : Time; 
  866.     LoadingMsg, 
  867.     ListPrompt    : String[70]; 
  868.     PwdExpiry     : Integer; 
  869.     MenuPath, 
  870.     TextPath, 
  871.     NetPath, 
  872.     NodelistPath, 
  873.     MsgBasePath, 
  874.     SysPath, 
  875.     ExternalEdCmd : String[60]; 
  876.     Address       : Array[0..9] of NetAddress; 
  877.     SystemName    : String[30]; 
  878.     NewSecurity   : Integer; 
  879.     NewCredit     : Integer; 
  880.     NewFlags      : FlagType; 
  881.     OriginLine    : String[60]; 
  882.     QuoteString   : String[15]; 
  883.     Sysop         : String[35]; 
  884.     LogFileName   : String[60]; 
  885.     FastLogon, 
  886.     AllowSysRem, 
  887.     MonoMode, 
  888.     StrictPwdChecking, 
  889.     DirectWrite, 
  890.     SnowCheck     : Boolean; 
  891.     CreditFactor  : Integer; 
  892.     UserTimeOut, 
  893.     LogonTime, 
  894.     PasswordTries, 
  895.     MaxPage, 
  896.     PageLength    : Integer; 
  897.     CheckForMultiLogon, 
  898.     ExcludeSysopFromList, 
  899.     OneWordNames  : Boolean; 
  900.     CheckMail     : AskType; 
  901.     AskVoicePhone, 
  902.     AskDataPhone, 
  903.     DoFullMailCheck, 
  904.     AllowFileShells, 
  905.     FixUploadDates, 
  906.     ShowFileDates : Boolean; 
  907.     ANSI,
  908.     ClearScreen,
  909.     MorePrompt,
  910.     UploadMsgs, 
  911.     KillSent
  912.     CrashAskSec   : Integer;
  913.     CrashAskFlags : FlagType; 
  914.     CrashSec      : Integer;
  915.     CrashFlags    : FlagType; 
  916.     FAttachSec    : Integer;
  917.     FAttachFlags  : FlagType; 
  918.     NormFore, 
  919.     NormBack, 
  920.     StatFore, 
  921.     StatBack, 
  922.     HiBack, 
  923.     HiFore, 
  924.     WindFore, 
  925.     WindBack, 
  926.     ExitLocal, 
  927.     Exit300, 
  928.     Exit1200, 
  929.     Exit2400, 
  930.     Exit4800, 
  931.     Exit9600, 
  932.     Exit19k, 
  933.     Exit38k       : Byte; 
  934.     MultiLine     : Boolean; 
  935.     MinPwdLen     : Byte; 
  936.     MinUpSpace    : Word; 
  937.     HotKeys       : AskType; 
  938.     BorderFore, 
  939.     BorderBack, 
  940.     BarFore, 
  941.     BarBack, 
  942.     LogStyle, 
  943.     MultiTasker, 
  944.     PwdBoard      : Byte; 
  945.     BufferSize    : Word; 
  946.     FKeys         : Array[1..10] of String[60];
  947.     FutureExpansion : Array[1..1024] of Byte; 
  948.   end; 
  949.  
  950. Field descriptions:
  951.  
  952.      VersionID :    May be used in future versions. Currently
  953.                     set to $0000 (or 0x0000)
  954.      CommPort  :    COMx: port number. 1 = COM1:
  955.      Baud      :    bps rate to use with modem
  956.      InitTries :    Number of times to try to initialise the
  957.                     modem
  958.      InitStr   :    Initialisation string
  959.      BusyStr   :    Modem string to take modem off-hook
  960.      InitResp  :    Initialisation response
  961.      BusyResp  :    Response to BusyStr
  962.      Connect300:    300bps connection response:
  963.      Connect1200:   1200bps
  964.      Connect2400:   2400bps
  965.      Connect4800:   4800bps
  966.      Connect9600:   9600bps
  967.      Connect19k:    19.2kbps
  968.      Connect38k:    38kbps
  969.      AnswerPhone:   If RA should answer phone manually
  970.      Ring      :    Modem "RING" code
  971.      AnswerStr :    "ATA"-style modem command to answer phone
  972.      FlushBuffer:   [not-used]
  973.      ModemDelay:    Delay to pause between lines sent to modem
  974.      MinimumBaud:   Minimum bps to allow a connection
  975.      GraphicsBaud:  Minimum bps to allow ANSI graphics
  976.                     capabilities
  977.      TransferBaud:  Minimum bps to allow file-transfer
  978.      SlowBaudTimeStart
  979.                :    Time to start 300bps file-transfer window
  980.      SlowBaudTimeEnd
  981.                :    Time to stop 300bps file-transfer window
  982.      DownloadTimeStart
  983.                :    Time to start file-transfer window
  984.      DownloadTimeEnd
  985.                :    Time to stop file-transfer window
  986.      PagingTimeStart
  987.                :    Time to start Sysop-paging window
  988.      PagingTimeEnd
  989.                :    Time to stop Sysop-paging window
  990.      LoadingMsg:    Message to display whilst loading external
  991.                     program
  992.      ListPrompt:    Prompt for 'list' menu-type
  993.      PwdExpiry :    Number of calls to force password-change
  994.      MenuPath  :    Path to *.MNU files
  995.      TextPath  :    Path to *.ASC and *.ANS files
  996.      NetPath   :    Path to netmail *.MSG files
  997.      NodelistPath:  [not-used]
  998.      MsgBasePath:   Path to MSG*.BBS files
  999.      SysPath   :    Path to main RA 'root' system directory
  1000.      ExternalEdCmd: Command to execute external message-editor
  1001.      Address   :    Primary and AKA address info. Element '0' of
  1002.                     this array is the primary, elements 1-9 are
  1003.                     AKA's.
  1004.      SystemName:    Name of system
  1005.      NewSecurity:   New-user security
  1006.      NewCredit :    New-user netmail credit
  1007.      NewFlags  :    New-user flags
  1008.      OriginLine:    Default ' * Origin:'-line
  1009.      QuoteString:   String to proceed message quotes. '@' are
  1010.                     converted into initials of quotee
  1011.      Sysop     :    Name of Systems Operator
  1012.      LogFileName:   Filename of log-file
  1013.      FastLogon :    Should names be prompted in local mode? If
  1014.                     not, the Sysop's name is used.
  1015.      AllowSysRem:   Should the Sysop be allowed to log-on
  1016.                     remotely?
  1017.      MonoMode  :    Should RA use B&W colours?
  1018.      StrictPwdChecking
  1019.                :    Sets if RA should strictly compare new and
  1020.                     old passwords (using word-similarity
  1021.                     algorithm)
  1022.      DirectWrite:   Sets if RA should write directly to the
  1023.                     screen, otherwise BIOS calls are used
  1024.      SnowCheck :    Sets if RA should worry about possible snow
  1025.                     when writing to the screen
  1026.      CreditFactor:  Upload credit factor. A value of 'x' gives
  1027.                     a user 'x' more seconds online.
  1028.      UserTimeOut:   Number of seconds to decide a "User
  1029.                     inactivity"
  1030.      LogonTime :    Number of minutes allowed to get to the TOP
  1031.                     menu.
  1032.      PasswordTries: Number of tries a user can have at providing
  1033.                     a correct password
  1034.      MaxPage   :    Maximum number of Sysop-pages allowed per-
  1035.                     call
  1036.      PageLength:    Sysop-page length (in seconds)
  1037.      CheckForMultiLogon
  1038.                :    Specifies if RA should check to make sure a
  1039.                     user isn't online on more than one line at
  1040.                     once.
  1041.      ExcludeSysopFromList
  1042.                :    Tells RA if the Sysop should be placed on
  1043.                     user-lists etc..
  1044.      OneWordNames:  Specifies if users are allowed to log-on
  1045.                     with one-word names. eg "Phil"
  1046.      CheckMail :    Specifies if mail-checking should be done,
  1047.                     not done, or if the user should be prompted
  1048.                     before doing so.
  1049.      AskVoicePhone: Tells RA if new-users should be asked their
  1050.                     voice/home number
  1051.      AskDataPhone:  Tells RA if new-users should be asked their
  1052.                     data/business number
  1053.      DoFullMailCheck
  1054.                :    Specifies if RA should use 'short-cuts' on
  1055.                     mail-checking, by only checking onwards from
  1056.                     the highest message the user has read
  1057.                     previously.
  1058.      AllowFileShells:
  1059.                :    Controls the availability of 'shell'
  1060.                     control-codes in text files. This has been
  1061.                     a large security problem in the past, so is
  1062.                     optioned in the RA package.
  1063.      FixUploadDates
  1064.                :    Specifies if file-dates on uploads shouldbe
  1065.                     reset to the date/time they were sent
  1066.      ShowFileDates: Specifies if file-dates should be displayed
  1067.                     in files listings. More space is available
  1068.                     for descriptions without dates.
  1069.      ANSI      :    Controls new-user setting of ANSI graphics
  1070.      ClearScreen:   Controls new-user setting of screen-clearing
  1071.      MorePrompt:    Controls new-user setting of Continue[Y/n/=]
  1072.                     prompts
  1073.      UploadMsgs:    [not-used]
  1074.      KillSent  :    Controls use of 'Kill/Sent' on netmail
  1075.      CrashAskSec:   Minimum security to have option for 'crash'
  1076.                     netmail
  1077.      CrashAskFlags: Flags requried to have option for 'crash'
  1078.                     netmail
  1079.      CrashSec  :    Minimum security to force use of crash-mail 
  1080.      CrashFlags:    Flags required to force use of crash-mail
  1081.      FAttachSec:    Security needed to have option for 'file-
  1082.                     attaches' on netmail
  1083.      FAttachFlags:  Flags needed to have option for 'file-
  1084.                     attaches' on netmail
  1085.  
  1086.                NOTE: The following attribute fields are for
  1087.                local control ONLY
  1088.  
  1089.      NormFore  :    Foreground for normal text 
  1090.      NormBack  :    Background for normal text
  1091.      StatFore  :    Foreground for status-line
  1092.      StatBack  :    Background for status-line
  1093.      HiBack    :    Background for highlight text
  1094.      HiFore    :    Foreground for highlight text
  1095.      WindFore  :    Foreground for window text
  1096.      WindBack  :    Background for window text
  1097.  
  1098.           NOTE: The following values specify errorlevel numbers
  1099.           given-off the front-end-mailer for each bps rate.
  1100.  
  1101.      ExitLocal
  1102.      Exit300
  1103.      Exit1200
  1104.      Exit2400
  1105.      Exit4800
  1106.      Exit9600
  1107.      Exit19k
  1108.      Exit38k
  1109.  
  1110.      MultiLine :    Tells RA if it is running on a multi-line
  1111.                     system
  1112.      MinPwdLen :    Minimum password-length (characters)
  1113.      MinUpSpace:    Minimum disk space required for initiating
  1114.                     of upload
  1115.      HotKeys   :    Controls new-user setting of use of 'hot-
  1116.                     keys'
  1117.      BorderFore:    Foreground of window-border
  1118.      BorderBack:    Background of window-border
  1119.      BarFore   :    Foreground of menu-bar
  1120.      BarBack   :    Background of menu-bar
  1121.      LogStyle  :    Style of log RA should write
  1122.      MultiTasker:   Type of multi-tasker used (if any)
  1123.      PwdBoard  :    Msg area # to use for password failure
  1124.                     notification messages (WatchDog)
  1125.      BufferSize:    Internal buffer-size to use
  1126.      FKeys     :    Function-key command-lines
  1127.      FutureExpansion
  1128.                :    [not-used]
  1129.  
  1130.